package com.graduate.nixingpotterty.utils;

import java.util.regex.Pattern;

/**
 * @author :ZhengHao
 * @version :1.0
 * @since :2025-01-19  23:26
 */
public class ValidationUtils {

    private static final int MIN_PASSWORD_LENGTH = 6;
    private static final String USERNAME_REGEX = "^[a-zA-Z0-9]+$";
    private static final String EMAIL_REGEX = "^[A-Za-z0-9+_.-]+@(.+)$";

    /**
     * 验证密码长度是否至少为6个字符。
     *
     * @param password 要验证的密码
     * @return 如果密码长度符合要求则返回true；否则返回false。
     */
    public static boolean isPasswordValid(String password) {
        return password != null && password.length() >= MIN_PASSWORD_LENGTH;
    }

    /**
     * 验证用户名是否仅由字母和数字组成。
     *
     * @param username 要验证的用户名
     * @return 如果用户名格式正确则返回true；否则返回false。
     */
    public static boolean isUsernameValid(String username) {
        if (username == null || username.isEmpty()) {
            return false;
        }
        return Pattern.matches(USERNAME_REGEX, username);
    }

    /**
     * 验证电子邮件地址格式是否正确。
     *
     * @param email 要验证的电子邮件地址
     * @return 如果电子邮件格式正确则返回true；否则返回false。
     */
    public static boolean isEmailValid(String email) {
        if (email == null || email.isEmpty()) {
            return false;
        }
        return Pattern.compile(EMAIL_REGEX).matcher(email).matches();
    }
}
